package com.agileai.bpm.service.define;

import java.util.List;

import com.agileai.bpm.domain.define.Activity;
import com.agileai.bpm.domain.define.Process;
import com.agileai.bpm.domain.define.Transition;

public interface DefineService {
	/**
	 * 创建流程定义
	* @param process
	 */
	public void createProcess(Process process);
	/**
	 * 更新流程定义
	* @param process
	 */
	public void updateProcess(Process process);
	/**
	 * 加载流程定义
	* @param processId
	* @return
	 */
	public Process loadProcess(String processId);
	/**
	 * 删除流程定义
	* @param processId
	 */
	public void deleteProcess(String processId);
	/**
	 * 获取流程定义列表
	* @return
	 */
	public List<Process> findAllProcess();
	/**
	 * 获取指定流程的活动（节点）定义列表
	* @param processId
	* @return
	 */
	public List<Activity> findActivities(String processId);
	/**
	 * 获取指定流程定义和活动的转移列表
	* @param processId
	* @param activities
	* @return
	 */
	public List<Transition> findTransitions(String processId,List<Activity> activities);
}
